Automated system and method for circuit design

ABSTRACT

A method in certain embodiments includes using a computer system that includes an EDA tool to generate a layout of an IC device; searching, using a statistical method such as Bayesian optimization process, for one or more input variable parameters, such as the dimensions of the IC device and the dimensions of the voltage areas in the IC device, that results in an optimal characteristic, such as power, performance or area (PPA) of the IC device, subject to a limiting condition, such as one determined using a cost function. A computer system including one or more EDAs configured to perform the method is also disclosed.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of application Ser. No. 17/331,825,filed May 27, 2021, titled “AUTOMATED SYSTEM AND METHOD FOR CIRCUITDESIGN”, the disclosure of which is hereby incorporated by referenceherein in its entirety.

BACKGROUND

This disclosure relates generally to electronic design automation andmore particularly to methods and systems for automated optimization oflayout in integrated circuit design.

Integrated circuits (ICs) are being designed and manufactured atincreasingly high degree of complexity and high device densities.Optimization of designs for various considerations, such as power,performance, and area (PPA) is becoming an increasingly difficult andtime- and resource-consuming task. Manual optimization processes oftencan only explore limited variations in design parameters, primarilybased on designers' intuition and/or experience, and fail to discovermore optimal designs. Efforts in increasing efficiency and effectivenessof design optimization are ongoing.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the present disclosure are best understood from the followingdetailed description when read with the accompanying figures. It isnoted that, in accordance with the standard practice in the industry,various features are not drawn to scale. In fact, the dimensions of thevarious features may be arbitrarily increased or reduced for clarity ofdiscussion.

FIG. 1 outlines a method for design optimization in accordance with someembodiments.

FIG. 2 shows a block diagram illustrating an example of a computersystem in accordance with some embodiments.

FIG. 3 shows a block diagram of an IC manufacturing system and an ICmanufacturing flow associated therewith in accordance with someembodiments.

FIG. 4 shows an IC optimization process in accordance with someembodiments.

FIG. 5A shows the result of an initial step in an optimization processin accordance with some embodiments.

FIG. 5B shows the results of certain subsequent steps in an optimizationprocess in accordance with some embodiments.

FIG. 6 shows a process flow for optimizing IC design in accordance withsome embodiments.

FIG. 7 shows a process flow for optimizing IC design in accordance withsome embodiments.

FIG. 8 illustrates a Bayesian optimization used in certain processes foroptimizing IC design in accordance with some embodiments.

FIG. 9A shows an example series of floor plans as results of successiveiterations of a process for optimizing IC design in accordance with someembodiments.

FIG. 9B shows an example progression of utilization as a result ofsuccessive iterations of a process for optimizing IC design inaccordance with some embodiments.

DETAILED DESCRIPTION

The following disclosure provides many different embodiments, orexamples, for implementing different features of the provided subjectmatter. Specific examples of components and arrangements are describedbelow to simplify the present disclosure. These are, of course, merelyexamples and are not intended to be limiting. For example, the formationof a first feature over or on a second feature in the description thatfollows may include embodiments in which the first and second featuresare formed in direct contact, and may also include embodiments in whichadditional features may be formed between the first and second features,such that the first and second features may not be in direct contact. Inaddition, the present disclosure may repeat reference numerals and/orletters in the various examples. This repetition is for the purpose ofsimplicity and clarity and does not in itself dictate a relationshipbetween the various embodiments and/or configurations discussed.

Integrated circuits (ICs) are being designed and manufactured atincreasingly high degree of complexity and high device densities.Optimization of designs for various considerations, such as power,performance, and area (PPA) is becoming an increasingly difficult andtime- and resource-consuming task. For example, for a RISC-V processorwith two voltage areas (VAs), to optimize the floor plan (FP) forutilization (percentage of area utilized by cells), the vertical andhorizontal dimensions (Vs and Hs, respectively) of the VAs and of theoverall processor (totaling six dimensions) may be varied. To optimizeusing the grid method, i.e., to try all permutations of Vs and Hs, n⁶trials need to be conducted, where n is the number of lengths to betried for each dimension. Thus, for example, 64 million trials would beneeded for 20 different lengths in each dimension; 262 thousand trialsfor 8 different lengths; and four thousand trials for four (4) differentlengths. Manual optimization processes often can only explore limitedvariations in design parameters, primarily based on designers' intuitionand/or experience, and fail to discover more optimal designs. Certainmethods and systems disclose in this disclosure can provide increasedefficiency and effectiveness of design optimization as compared withtraditional methods and systems.

In some embodiments, as shown in FIG. 1 , a computer-implemented method100 for optimizing a physical layout of an integrated circuit (IC)includes (a) 110 providing a set of values for an input variableparameter of the IC; (b) 120 generating a set of layouts of the ICcorresponding to the respective values for the set of input variableparameter; (c) 130 computing a set of values for an output variableparameter corresponding to the set of input variable parameters based onthe corresponding layout; (d) if 140 a predetermined condition on is notmet, 150 determining at least one additional value for the inputvariable parameter based on the set of values for the input variableparameters and the values of the corresponding output variableparameters; and (e) 160 repeating steps (b) through (d), with theadditional value for the input variable parameter included in the set ofinput values. In some embodiments, as discussed in more detail below,the determination of the at least one additional value for the inputvariable parameter (step (d)) is done using a statistical optimizationprocess such as Bayesian optimization process. In some embodiments, thevalue for the input addition variable input parameter is dependent onboth (a) proximity to at least one of the values for the set of inputvariable parameters and (b) uncertainty in the computed value for theoutput variable parameter at the value for the input variable parameter.In some embodiments, the computer-implemented method further includes(f) providing a physical layout of the IC and/or fabricating the ICaccording to one of the layouts generated in step (b) for which layoutthe predetermined condition is met.

In some embodiments, the output variable parameter is one or more of theso-called PPA, i.e., power, performance and area, where power is relatedto the power consumption of the device, performance is related to thefrequency at which the device is capable of operating, and area isrelated to the utilization.

The processes described above and below are implemented by a computersystem, such as a computer system having electronic design automation(EDA) tools for automated placement and routing of devices in someembodiments. Examples of EDA tools include those for automated cellplacement and routing, such as Design Compiler Graphical and FusionCompiler by Synopsys, Inc., and Innovus by Cadence Design Systems, Inc.Such a computer system in some embodiment includes one or morespecial-purpose computers, which can be one or more general-purposecomputers specifically programmed to perform the methods. For example, acomputer 200 schematically shown in FIG. 2 can be used. The computer 200includes a processor 210, which is connected to the other components ofthe computer via a data communication path such as a bus 220. Thecomponents include system memory 230, which is loaded with theinstructions for the processor 210 to perform the methods describedabove. Included is also a mass storage device, which is acomputer-readable storage medium 240. The mass storage device is anelectronic, magnetic, optical, electromagnetic, infrared, and/or asemiconductor system (or apparatus or device). For example, thecomputer-readable storage medium 240 includes a semiconductor orsolid-state memory, a magnetic tape, a removable computer diskette, arandom access memory (RAM), a read-only memory (ROM), a rigid magneticdisk, and/or an optical disk. In one or more embodiments using opticaldisks, the computer-readable storage medium 240 includes a compactdisk-read only memory (CD-ROM), a compact disk-read/write (CD-R/W),and/or a digital video disc (DVD). The mass storage device 240 stores,among other things, the operating system 242; programs 244, includingthose that, when read into the system memory 220 and executed by theprocessor 210, cause the computer 200 to carry out the processesdescribed above; and Data 246. Data 246 can include, for example, astandard cell library, which includes standard cells, such as NAND, NOR,INV (inverter), AOI (AND-OR-Inverter), and SDFQ (D flip-flop with scaninput), design rules, status of the IC circuit design, including thecurrent iteration of mask pattern. The computer 200 also includes an I/Ocontroller 250, which input and output to a User Interface 252. The UserInterface 252 can include a keyboard, mouse, display and any othersuitable user interfacing devices. The I/O controller can have furtherinput/out ports for input from, and/or output to, devices such as anExternal Storage device 280, which can be any memory device, including asemiconductor or solid-state memory device, a magnetic tape drive, arigid magnetic disk drive, and/or an optical disk, such as a compactdisk-read only memory (CD-ROM), a compact disk-read/write (CD-R/W),and/or a digital video disc (DVD). The computer can further include anetwork interface 260 to enable the computer to receive and transmitdata from and to remote networks 262.

The computer system in some embodiments includes a Fabrication Toolsmodule 270 for layout and physical implementation of the devicefabrication as designed at least in part using the processes describedabove. The Fabrication Tools module 270 in some embodiments is a part ofthe computer 200 and is connected to the bus 220 and can receive thelayout design stored in the Mass Storage device 240. In otherembodiments, the Fabrication Tools module can be a system separate fromthe computer 200 but receive the layout design made by the computer 200via the Network 262. In still further embodiments, the Fabrication Toolsmodule can be a system separate from the computer 200 but receive thelayout design made by the computer 200 from a External Storage device280, such as a solid state storage device or an optical disk.

As noted above, the computer system, such as an EDA system (i.e., acomputer system with EDA tools) in some embodiments includes fabricationtools 270 for implementing the processes and/or methods stored in thestorage medium 240. For instance, a synthesis ay be performed on adesign in which the behavior and/or functions desired from the designare transformed to a functionally equivalent logic gate-level circuitdescription by matching the design to standard cells selected from thestandard cell library 248. The synthesis results in a functionallyequivalent logic gate-level circuit description, such as a gate-levelnetlist. Based on the gate-level netlist, a photolithographic mask maybe generated that is used to fabricate the integrated circuit by thefabrication tools 270. Further aspects of device fabrication aredisclosed in conjunction with FIG. 3 , which is a block diagram of ICmanufacturing system 301, and an IC manufacturing flow associatedtherewith, in accordance with some embodiments. In some embodiments,based on a layout diagram, at least one of (A) one or more semiconductormasks or (B) at least one component in a layer of a semiconductorintegrated circuit is fabricated using the manufacturing system 301.

In FIG. 3 , the IC manufacturing system 301 includes entities, such as adesign house 320, a mask house 330, and an IC manufacturer/fabricator(“fab”) 350, that interact with one another in the design, development,and manufacturing cycles and/or services related to manufacturing anintegrated circuit (IC) 300, such as the devices disclosed herein. Theentities in the system 301 are connected by a communications network. Insome embodiments, the communications network is a single network. Insome embodiments, the communications network is a variety of differentnetworks, such as an intranet and the Internet. The communicationsnetwork includes wired and/or wireless communication channels. Eachentity interacts with one or more of the other entities and providesservices to and/or receives services from one or more of the otherentities. In some embodiments, two or more of the design house 320, maskhouse 330, and IC fab 350 is owned by a single entity. In someembodiments, two or more of design house 320, mask house 330, and IC fab350 coexist in a common facility and use common resources.

The design house (or design team) 320 generates an IC design layoutdiagram 322. The IC design layout diagram 322 includes variousgeometrical patterns, or IC layout diagrams designed for an IC device,such as the IC 300 discussed above. The geometrical patterns correspondto patterns of metal, oxide, or semiconductor layers that make up thevarious components of the IC 300 to be fabricated. The various layerscombine to form various IC features. For example, a portion of the ICdesign layout diagram 322 includes various IC features, such as anactive region, gate electrode, source and drain, metal lines or localvias, and openings for bonding pads, to be formed in a semiconductorsubstrate (such as a silicon wafer) and various material layers disposedon the semiconductor substrate. The design house 320 implements a designprocedure to form an IC design layout diagram 322. The design procedureincludes one or more of logic design, physical design or place androute. The IC design layout diagram 322 is presented in one or more datafiles having information of the geometrical patterns. For example, ICdesign layout diagram 322 can be expressed in a GDSII file format orDFII file format.

The mask house 330 includes a data preparation 332 and a maskfabrication 344. The mask house 330 uses the IC design layout diagram322 to manufacture one or more masks 345 to be used for fabricating thevarious layers of the IC 300 according to the IC design layout diagram322. The mask house 330 performs mask data preparation 332, where the ICdesign layout diagram 322 is translated into a representative data file(“RDF”). The mask data preparation 332 provides the RDF to the maskfabrication 344. The mask fabrication 344 includes a mask writer. A maskwriter converts the RDF to an image on a substrate, such as a mask(reticle) 345 or a semiconductor wafer 353. The design layout diagram322 is manipulated by the mask data preparation 332 to comply withparticular characteristics of the mask writer and/or requirements of theIC fab 350. In FIG. 3 , the mask data preparation 332 and the maskfabrication 344 are illustrated as separate elements. In someembodiments, the mask data preparation 332 and the mask fabrication 344can be collectively referred to as a mask data preparation.

In some embodiments, the mask data preparation 332 includes an opticalproximity correction (OPC) which uses lithography enhancement techniquesto compensate for image errors, such as those that can arise fromdiffraction, interference, other process effects and the like. The OPCadjusts the IC design layout diagram 322. In some embodiments, the maskdata preparation 332 includes further resolution enhancement techniques(RET), such as off-axis illumination, sub-resolution assist features,phase-shifting masks, other suitable techniques, and the like orcombinations thereof. In some embodiments, inverse lithographytechnology (ILT) is also used, which treats OPC as an inverse imagingproblem.

In some embodiments, the mask data preparation 332 includes a mask rulechecker (MRC) that checks the IC design layout diagram 322 that hasundergone processes in OPC with a set of mask creation rules whichcontain certain geometric and/or connectivity restrictions to ensuresufficient margins, to account for variability in semiconductormanufacturing processes, and the like. In some embodiments, the MRCmodifies the IC design layout diagram 322 to compensate for limitationsduring the mask fabrication 344, which may undo part of themodifications performed by OPC in order to meet mask creation rules.

In some embodiments, the mask data preparation 332 includes lithographyprocess checking (LPC) that simulates processing that will beimplemented by the IC fab 350 to fabricate the IC 300. LPC simulatesthis processing based on the IC design layout diagram 322 to create asimulated manufactured device, such as the IC 300. The processingparameters in LPC simulation can include parameters associated withvarious processes of the IC manufacturing cycle, parameters associatedwith tools used for manufacturing the IC, and/or other aspects of themanufacturing process. LPC takes into account various factors, such asaerial image contrast, depth of focus (“DOF”), mask error enhancementfactor (“MEEF”), other suitable factors, and the like or combinationsthereof. In some embodiments, after a simulated manufactured device hasbeen created by LPC, if the simulated device is not close enough inshape to satisfy design rules, OPC and/or MRC are be repeated to furtherrefine the IC design layout diagram 322.

It should be understood that the above description of mask datapreparation 332 has been simplified for the purposes of clarity. In someembodiments, data preparation 332 includes additional features such as alogic operation (LOP) to modify the IC design layout diagram 322according to manufacturing rules. Additionally, the processes applied tothe IC design layout diagram 322 during data preparation 332 may beexecuted in a variety of different orders.

After the mask data preparation 332 and during the mask fabrication 344,a mask 345 or a group of masks 345 are fabricated based on the modifiedIC design layout diagram 322. In some embodiments, the mask fabrication344 includes performing one or more lithographic exposures based on theIC design layout diagram 322. In some embodiments, an electron-beam(e-beam) or a mechanism of multiple e-beams is used to form a pattern ona mask (photomask or reticle) 345 based on the modified IC design layoutdiagram 322. The mask 345 can be formed in various technologies. In someembodiments, the mask 345 is formed using binary technology. In someembodiments, a mask pattern includes opaque regions and transparentregions. A radiation beam, such as an ultraviolet (UV) beam, used toexpose the image sensitive material layer (e.g., photoresist) which hasbeen coated on a wafer, is blocked by the opaque region and transmitsthrough the transparent regions. In one example, a binary mask versionof the mask 345 includes a transparent substrate (e.g., fused quartz)and an opaque material (e.g., chromium) coated in the opaque regions ofthe binary mask. In another example, the mask 345 is formed using aphase shift technology. In a phase shift mask (PSM) version of the mask345, various features in the pattern formed on the phase shift mask areconfigured to have proper phase difference to enhance the resolution andimaging quality. In various examples, the phase shift mask can beattenuated PSM or alternating PSM. The mask(s) generated by the maskfabrication 344 is used in a variety of processes. For example, such amask(s) is used in an ion implantation process to form various dopedregions in the semiconductor wafer 353, in an etching process to formvarious etching regions in the semiconductor wafer 353, and/or in othersuitable processes.

The IC fab 350 includes wafer fabrication 352. The IC fab 350 is an ICfabrication business that includes one or more manufacturing facilitiesfor the fabrication of a variety of different IC products. In someembodiments, the IC Fab 350 is a semiconductor foundry. For example,there may be a manufacturing facility for the front end fabrication of aplurality of IC products (FEOL fabrication), while a secondmanufacturing facility may provide the back end fabrication for theinterconnection and packaging of the IC products (BEOL fabrication), anda third manufacturing facility may provide other services for thefoundry business.

The IC fab 350 uses mask(s) 345 fabricated by the mask house 330 tofabricate the IC 300. Thus, the IC fab 350 at least indirectly uses theIC design layout diagram 322 to fabricate the IC 300. In someembodiments, the semiconductor wafer 353 is fabricated by the IC fab 350using mask(s) 345 to form the IC 300. In some embodiments, the ICfabrication includes performing one or more lithographic exposures basedat least indirectly on the IC design layout diagram 322. TheSemiconductor wafer 353 includes a silicon substrate or other propersubstrate having material layers formed thereon. The semiconductor wafer353 further includes one or more of various doped regions, dielectricfeatures, multilevel interconnects, and the like (formed at subsequentmanufacturing steps).

Referring to FIG. 4 , in some embodiments, a process 400 for generatingan IC layout and/or IC fabrication includes providing 410 input data,which can be a set of values of an input variable parameter, such asvertical and/or horizontal dimensions of VAs and/or of the overalldevice, such as an RISC-V processor, to a robot expert system (RES) 420,which can be a computer 200 in FIG. 2 . Within an RES 420, anapplication 430, such as an EDA tool, runs. The application 430 sets 432one or more input variable parameters. In the next step 434, varioussteps of physical design of the IC are carried out, where the inputvariable parameters are processed to generate a set of respectivelayouts and one or more output variable parameters, such as one or moreof PPA and/or clock-tree-synthesis (CTS) overflow, are computed. Thevalues of the input variable parameters and corresponding outputvariable parameters are also used to compute one or more additionalvalues of the input variable parameters using an optimization processsuch as Bayesian optimization process, and a corresponding additionallayout is generated and its output variable parameter computed. In someembodiments, some or all of the results of such computations are used436 to perform a cost function analysis 438, discussed in more detailbelow, in which the benefit, such as increased utilization, is evaluatedagainst cost, such as increased CTS overflow. The result of the costfunction analysis is used in a robot guide setting step 440 to adjust,or constrain, the input variable parameters for the next iteration ofrunning the application 430. Next, the application 430 is automaticallyrepeated 442 for the modified input variable parameters. The processdescribed above is automatically repeated until certain conditions aremet, such as when an output variable parameter to be optimized, such asutilization, substantially remains unchanged (converges), or a certainnumber of iterations of the process has been completed, the outputvariable parameter or parameters are output 450 from the RES 420 andcompared 460 with those for the layouts corresponding to the originalinput data. If the RES has produced output variable parameters, suchPPA, that are not as desirable as the most desirable output variableparameters of the original layouts, the modified input variableparameters are used 470 in the next iteration of the process by the RES420 as described above; otherwise the layout generated in the finaliteration is output 480 to obtain a physical layout files in formats(e.g., GDSII and DRC) that can be read by IC fabricator 350 (FIG. 3 ) toproduce the IC devices.

In some embodiments, as illustrated in FIG. 5A, the initial layout forthe optimization process, such as that provided by step (a) 110 of theprocess 100 (FIG. 1 ), is provided by migrating from a previously knownlayout. For example, the layout for a 3-nm device 550 with a certainnumber of VAs 560,570 can be initially generated, migrated, from alayout for a 6-nm device 500 having the same number of VAs 510,520 basedon known scaling factors. That is, the cells 540 in the 6-nm device canbe scaled to different sized and/or aspect ratios to those 540 in the3-nm device.

Next as shown in FIG. 5B, an optimization process described above isused to generate layouts that have progressively higher utilization,from 55% to 66%, and to 74% in the examples given.

In some embodiments, such as the one illustrated in FIG. 6 , PPAoptimization by varying input variable parameters, such as Hs and Vs ofrespective VAs and overall device can be achieved by a process 600,which begin with providing 620 inputs 610 to an EDA tool. If the EDAtool is determined 630 to be not legalized (i.e., input floor plan isvalid (e.g., no overlapping memory macros)) the process 600 reverts tostep 620 until a legal configuration is found; otherwise the EDA toolgenerates 640 layouts based the inputs and computes one or more PPAparameters, such as utilization. The PPA parameters are compared 650with the initial PPA parameter in the first iteration of theoptimization process 600, or best PPA parameter in the previousiteration in the subsequent iterations. If the PPA parameter is notbetter, an optimization process, such as Bayesian optimization processas described above is run 660 to search for a better PPA parameter byadding one or more new inputs to be supplied to the EDA tool. The newinputs are then supplied 670 to the EDA tool and the process is repeateduntil a more desirable PPA parameter is found, and the correspondinglayout is output 680 to a layout database, to be used for fabricatingthe IC device.

In certain other embodiments, such as the one illustrated in FIG. 7 , anoptimization process 700 can be used to provide improved accuracy ofcertain electrical characteristics (such as RC time delay per IC layer)estimated by EDA tools and thus leads to improved performance (such astiming) of IC devices designed with the aid of the EDA tools. In thisexample, an existing layout for an IC device is provided from apost-route database is provided 710 to a first EDA tool (EDA Tool A),which can be an automatic placement-and-routing (APR) tool and/or acombination of an RC extraction too (RCXT) and static timing analysis(STA) tool. The first EDA tool computes 720 a first set of values for aperformance parameter, such as critical net (or interconnect) delays foreach layer based on the layout from the post-route database. Theexisting layout for an IC device is also provided 770 from thepost-route database is provided 710 to a second EDA tool (EDA Tool B),which can be a logic synthesis tool, which generates, for example,netlists that can be subsequently used by an APR tool to generatephysical layouts. The second EDA tool in this example is also configuredto compute 780 a second set of values of the performance parameter, suchas net delays for each layer from the RC data received. The net delayscomputed by the two EDA tools are compared 730, for example by computinga mean-squared error, and a determination is made 740 based on thecomparison (e.g., the size of the mean-squared error) as to whether thenet delays provided by the EDA tools have converged. If the net delaysare deemed to have not converged (e.g., if the mean-squared error islarger than a predetermined value), a robot search (750) is performed byproviding (760) resistance and capacitance values or scaling factors tothe second EDA tool, which in turn recomputes the second set of netdelays, which is again comparted with the first set of net delays, andso on. The cycle repeats, with additional RC values or scaling factorsadded 760 each time by the robot search process 750. The process bywhich the RC data are added in some embodiments is similar theoptimization process outlined in FIG. 1 . The search process ends 790when the mean-square error is smaller than certain predetermined level.The RC data can then be used by a logic synthesis EDA tool to generategate-level netlist for physical layouts by an APR EDA tool. Because thepre-route (logic synthesis stage) RC parameters are matched topost-route RC parameters by the optimization process, the IC devicesdesigned by the optimization process are more likely to have improvedtiming performance.

In some embodiments, the robot search process includes a Bayesianoptimization process. In a Bayesian optimization process, as illustratedin FIG. 8 , the search for a global maximum (or minimum) of an unknownfunction (or ground truth) 810 (such as utilization verses V and H) iscarried out first by evaluating (testing) the function 810 at a set oftest values (such as initial Vs and Hs) to obtain the corresponding setof test points 820 that satisfy the function 810. Next, a statisticalprocess, such as Gaussian Process (GP) is used to generate a surrogatefunction 830 that pass through those points 820 with a range ofuncertainty 840 depending on the distance from the test points 820(greater uncertainty at greater distances from the test points). Next,an acquisition function 850 is generated that guides where to test thefunction 810 next. An acquisition function is generated by combining thebenefit of searching in points away from previously tested points(exploration) and that of searching near the current maxima (or minima)(exploitation of currently known maxima (or minima)). A variety ofalgorithms, including the “expected improvement” algorithm, can be usedto generate the acquisition function 850. The maximum point (representedby the dotted line 860 in FIG. 8 ) of the acquisition function 850 isthen used to produce the new test point 870. The process can be repeatedwith the new set of test points 820, now including test point 870, tofind the additional test points. The process can end when certainpredetermined condition(s) is (are) met. For example, one condition canbe that the process of identifying a new test point has gone through acertain number of iterations; another condition can be that a test pointhas been found to have a value of the function 810 greater than athreshold level. A description of Bayesian optimization process can befound in, for example, P. L. Frazier, “A Tutorial on BayesianOptimization,” arXiv:1807.02811v1 [stat.ML], which incorporated hereinby reference.

In some embodiments, the optimization processes described above areguided, or constrained by factors, or variables, not tested by aparticular algorithm (e.g., Bayesian) used. For example, maximizingutilization may incur the cost of overflow, i.e., move routing demandsthan routing resources, and utilization should be reduced by an amountcorresponding to the overflow. Such constraints can be taken intoaccount in a cost function analysis (step 438 in FIG. 1 ) by using acost (or barrier) function 880 to guide the search. In some embodiments,the cost function can take the form:

Utilization−(e ^(α·overflow) ^(H) ^(+β)−γ)−(e ^(α·overflow) ^(V)^(+β)−γ)  (1)

where overflow_(H) is the overflow in the horizontal direction,overflow_(V) is the overflow in the vertical direction, and α, β, and γare constants. Cost function (1) is an expression that utilizationshould be reduced by an amount

(e ^(α·overflow) ^(H) ^(+β)−γ)+(e ^(α·overflow) ^(V) ^(+β)−γ)  (2)

The constants α, β, and γ are in some embodiments determined byexperience of the IC designers. For example, a set of conditions can be:

-   -   For overflow (H or V)=0, reduction in utilization=0;    -   For overflow (H or V)=5, reduction in utilization=1;    -   For overflow (H or V)=20, reduction in utilization=2;

Solving the equations (e^(α·overflow) ^(H) ^(+β)−γ)=0, 5, and 20, oneobtains α≈1.1, β≈0.9, and γ=2.5. That is, utilization should not exceed

Utilization−(e ^(1.1·overflow) ^(H) ^(+0.9)−2.5)−(e ^(1.1·overflow) ^(V)^(+0.9)−2.5)  (3)

With the optimization processes described above, the optimizationefficiency can be greatly improved over traditional method of manualtrial-and-error, or grid search. FIG. 9A shows an example sequence oflayouts generated by a Bayesian optimization process. A layout of alarger device 910 is first scaled down to a smaller device 920 a. ABayesian optimization process is then carried out to optimizeutilization to generate iterative layouts 920 b through 920 h. As shownin FIG. 9B, utilization improved in one example from about 65% to about73% in twelve iterations. Tables I and II below show examples ofutilization improvements for certain processors.

TABLE I Robot auto search: N5 GPU, 5% utilization improvement withoverflow ≤ 1.2% Over- Over- Case Iteration Score Utilization flow_(H)flow_(V) H V User 0 63.85 64.10 0.29 0.12 1.000 1.000 Baseline BO best 368.84 69.32 0.43 0.30 0.922 1.011

TABLE II Robot auto search: N4 CPU, 5% utilization improvement withoverflow ≤ 1.2% Over- Over- Case Iteration Score Utilization flow_(H)flow_(V) H V User 0 64.52 64.96 0.13 0.51 1.022 0.933 Baseline BO best 365.45 66.63 0.26 0.98 0.800 1.200 BO best 7 67.73 68.59 0.20 0.81 0.9780.978 BO best 12 72.81 72.81 0.37 1.65 0.933 0.978

Thus, in some embodiments, a computer-implemented method for optimizinga physical layout of an integrated circuit (IC) includes (a) providing aset of values for an input variable parameter of the IC; (b) generatinga set of layouts of the IC corresponding to the respective values forthe set of input variable parameter; (c) computing a set of values foran output variable parameter corresponding to the set of input variableparameters based on the corresponding layout; (d) if a predeterminedcondition on is not met, determining at least one additional value forthe input variable parameter based on the set of values for the inputvariable parameters and the values of the corresponding output variableparameters; and (e) repeating steps (b) through (d), with the additionalvalue for the input variable parameter included in the set of inputvalues.

In some embodiments, a system includes a processor and computer readablemedia accessible by the processor and storing instructions that whenexecuted by the processor implement a method that includes (a) providinga set of values for an input variable parameter of the IC; (b)generating a set of layouts of the IC corresponding to the respectivevalues for the set of input variable parameter; (c) computing a set ofvalues for an output variable parameter corresponding to the set ofinput variable parameters based on the corresponding layout; (d) if apredetermined condition on is not met, determining at least oneadditional value for the input variable parameter based on the set ofvalues for the input variable parameters and the values of thecorresponding output variable parameters; and (e) repeating steps (b)through (d), with the additional value for the input variable parameterincluded in the set of input values.

In some embodiments, a method includes computing, using a first EDA tooland from a post-route layout of an electronic circuit, a first set ofvalues for a performance parameter for the electronic circuit; computinga set of values for one or more electrical characteristics of thecircuit by: (a) providing a set of input values of the one or moreelectrical characteristics, (b) computing, using a second EDA tool andthe set of input values of the electrical characteristics, a second setof values of the performance parameter for the electronic circuit, (c)comparing the second set of values of the performance parameter with thefirst set of values of the performance parameter, and modifying the setof input values of the electrical characteristics by a Bayesianoptimization process, and (d) repeating steps (b) and (c) until thesecond set of values of the performance parameter bares a predeterminedrelationship with the first set of values of the performance parameter.

The foregoing outlines features of several embodiments so that thoseskilled in the art may better understand the aspects of the presentdisclosure. Those skilled in the art should appreciate that they mayreadily use the present disclosure as a basis for designing or modifyingother processes and structures for carrying out the same purposes and/orachieving the same advantages of the embodiments introduced herein.Those skilled in the art should also realize that such equivalentconstructions do not depart from the spirit and scope of the presentdisclosure, and that they may make various changes, substitutions, andalterations herein without departing from the spirit and scope of thepresent disclosure.

What is claimed is:
 1. A method for optimizing a physical layout of anintegrated circuit (IC) device, comprising: (a) providing a plurality ofvalues for an input variable parameter of the IC device; (b) generatinga plurality of layouts of the IC device corresponding to the respectivevalues for the plurality of input variable parameter; (c) computing aplurality of values for an output variable parameter corresponding tothe plurality of input variable parameters based on the correspondinglayout; (d) determining a limiting condition on the value of the outputvariable parameter; (e) determining at least one additional value forthe input variable parameter based on the plurality of values for theinput variable parameters, the values of the corresponding outputvariable parameter, and the limiting condition; (f) repeating steps (b)through (e), with the additional value for the input variable parameterincluded in the plurality of input values, until a predeterminedcondition relating to the output variable parameter is met; and (g)generating, using at least one of the at least one value determined instep (e) for the input variable parameter, a layout of the IC device. 2.The method of claim 1, wherein: the limiting condition is dependent onthe value of output variable parameter, and the determining at least oneadditional value for the input variable parameter comprises determiningat least one additional value for the input variable parameter based ona combination of (a) proximity to the values for the an input variableparameter for which the computed output variable parameter is greater orsmaller than the other computed output variable parameters and (b)uncertainty in the computed value for the output variable parameter atthe value for the input variable parameter.
 3. The method of claim 2,wherein step (g) comprises, when the predetermined condition is met,selecting the value for the input variable parameter for which thecomputed output variable parameter is greater or smaller than the othercomputed output variable parameters; and generating, using aplacement-and-routing EDA tool and the selected value, a layout of theIC device.
 4. The method of claim 3, further comprising fabricating anIC device based on the generated layout.
 5. The method of claim 1,wherein the providing a plurality of values for an input variableparameter comprises computing the plurality of values for the inputvariable parameter based on another IC device of a different size. 6.The method of claim 1, wherein the input variable parameter is size of adimension of a voltage area (VA) in the IC device or size of a dimensionof the IC device.
 7. The method of claim 3, wherein determining thelimiting condition includes determining the limiting condition using acost function including the output variable parameter reduced by aquantity based on a cost that is another function of the plurality ofinput variable parameters based on the corresponding layout.
 8. Themethod of claim 7, wherein the output variable parameter is utilization,and the cost is the overflow.
 9. The method of claim 8, wherein the costfunction isUtilization−(e ^(α·overflow) ^(H) ^(+β)−γ)−(e ^(α·overflow) ^(V)^(+β)−γ) where overflow_(H) is the overflow in horizontal direction,overflow_(V) is the overflow in vertical direction, and α, β, and γ areconstants.
 10. A system, comprising: a processor; and computer readablemedia accessible by the processor and storing instructions that whenexecuted by the processor implement a method that includes (a) providinga plurality of values for an input variable parameter of the IC device;(b) generating a plurality of layouts of the IC device corresponding tothe respective values for the plurality of input variable parameter; (c)computing a plurality of values for an output variable parametercorresponding to the plurality of input variable parameters based on thecorresponding layout; (d) determining a limiting condition on the valueof the output variable parameter; (e) determining at least oneadditional value for the input variable parameter based on the pluralityof values for the input variable parameters, the values of thecorresponding output variable parameter, and the limiting condition; (f)repeating steps (b) through (e), with the additional value for the inputvariable parameter included in the plurality of input values until apredetermined condition relating to the output variable parameter ismet; and (g) generating, using at least one of the at least one valuedetermined in step (e) for the input variable parameter, a layout of theIC device.
 11. The system of claim 10, wherein step (g) of the methodincludes: when the predetermined condition is met, selecting the valuefor the input variable parameter for which the computed output variableparameter is greater or smaller than the other computed output variableparameters; and generating, using a placement-and-routing EDA tool andthe selected value, a layout of the IC device.
 12. The system of claim10, further comprising an IC manufacturing system configured to receivethe layout generated by the processor and fabricate an IC device basedon the generated layout.
 13. The system of claim 10, wherein the inputvariable parameter is size of a dimension of a voltage area (VA) in theIC device or size of a dimension of the IC device.
 14. The system ofclaim 13, wherein the output variable parameter is utilization.
 15. Thesystem of claim 10, wherein the determining at least one additionalvalue for the input variable parameter comprises determining at leastone additional value for the input variable parameter using a Bayesianoptimization process.
 16. The system of claim 11, wherein the methodfurther comprises determining a limiting condition on the value of theoutput variable parameter, wherein the selecting the value for the inputvariable parameter comprises selecting the value for the input variableparameter for which the computed output variable parameter is greater orsmaller than the other computed output variable parameters, subject tothe limiting condition.
 17. The method of claim 16, wherein: the methodfurther comprises computing an overflow for the IC device, wherein: theoutput variable parameter is utilization; and the limiting condition isdependent on the computed overflow.
 18. A method, comprising: computing,using a first EDA tool and from a post-route layout of an electroniccircuit, a first set of values for a performance parameter for theelectronic circuit; and computing a set of values for one or moreelectrical characteristics of the circuit by: (a) providing a set ofinput values of the one or more electrical characteristics; (b)computing, using a second EDA tool and the set of input values of theelectrical characteristics, a second set of values of the performanceparameter for the electronic circuit; (c) determining a limitingcondition on values of the performance parameter; (d) comparing thesecond set of values of the performance parameter with the first set ofvalues of the performance parameter, and modifying the set of inputvalues of the electrical characteristics by a Bayesian optimizationprocess, subject to the limiting condition; (e) repeating steps (b)through (d) until the second set of values of the performance parameterbares a predetermined relationship with the first set of values of theperformance parameter; and (f) generating, using the set of modifiedinput values of the electrical characteristics, a modified layout ofelectronic circuit.
 19. The method of claim 18, wherein the one or moreelectrical characteristics comprise resistance and capacitance (RCvalues), and wherein the performance parameter is net delay.
 20. Themethod of claim 19, the predetermined relationship is that a valuemeasuring the difference between the second set of values of theperformance parameter and the first set of values of the performanceparameter is below a predetermined value, the method further comprising:selecting the RC values when the value measuring the difference betweenthe second set of values of the performance parameter and the first setof values of the performance parameter is below the predetermined value;and using a logic synthesis EDA tool to generate a netlist at leastpartially based on the selected RC values.